In a dynamic business environment, where timely access to data is important, computerized databases are commonly used to store data for easy retrieval and organization. The data is stored electronically in mass storage devices. Several computer software programs collectively called a database management system are used to manipulate the data for retrieval, deletion, updates and storage.
One type of DBMS used by many enterprises is a relational database management system (RDBMS). An RDBMS is a body of related information stored in a computer organized as tables having columns and rows. The columns correspond to attributes of relations and rows correspond to a relation grouping called a tuple. For example, an inventory table could have attributes such as an inventory item number, a description of the item, a quantity in stock, a price and a supplier. Each column corresponds to an attribute and each row is a tuple comprising the attributes for a given item.
Large enterprises with many remote business locations frequently have data stored at each separate location. For example, a large retail business having numerous outlets many miles away from each other could have separate databases at each location keeping track of that store's inventory. The local databases are accessible by local sales staff for information about items in stock locally. However, central purchasing staff for the business also need to access the information regarding each store's inventory.
The databases at each location can be linked together through communications systems so that the databases can all be reached from a central location. A distributed relational database network consists of a collection of tables spread across a number of computer systems having the same or different types of DBMSs that are interconnected in a network. Each computer system in the network has its own DBMS to manage data locally stored in its environment. Each of the remote locations may be using one of many different DBMSs that are currently available. These DBMS types and each version release thereof have different features and functionalities.
Accessing data from remote locations can be difficult for both database users trying to retrieve information from databases and for programmers creating programs using the data. It is even more difficult to access data at a remote location which has a different DBMS.
For large enterprises having many remote locations with different DBMSs, a programmer has to know many different DBMS commands, syntax and structure to access or control access to data at each remote site. Also, to perform correctly, the resulting programs must be designed and built to take into account the differences and special abilities of each remote system, the database system types that are on each system, the databases, contents of each database (e.g., tables and table columns) and the authorizations allowed for each part of each database.
The database type, the database, and the authorization are termed object types, while the actual databases stored in the systems, the tables in the database, the columns of the tables, and the authorizations on each table and column are termed occurrences or instances of a system object type. Materialization of objects refers to the process of creating a representation of the object by, for example, retrieving or organizing data in memory. The programmers need to know the object types in a system, the object occurrences, the relationships between objects, the actions that can be performed on a given object, and the way objects are materialized, for each of the systems in the network.
The programmers especially need to be cognizant of the differences in processes to generate lists of object occurrences in each system type. When each computer system has its own unique command set and syntax, there is an even greater need for a programmable process to control and facilitate the addition of new object types, relationships, and occurrence generators for all of the different systems.
Therefore, there is a need for a standardized method of retrieving all of the various objects in a distributed database system. It is important for such a method to be table or control file driven and to be dynamically extendable to provide for future additions of new objects and the relationships between objects being managed by the system.
There is also a need for flexibility in the design of the control tables used by the system managing a distributed database system. The distributed system is continually being changed to contain new object occurrences or instances (such as a particular table), object types (such as a new type of authorization privilege), and relationships between object types and the actions to be performed on object occurrences (such as copying, adding or deleting objects). Prior programming methods of encoding algorithms for obtaining entity-type and entity-instance relationships and the related program functions to perform various actions on the object instances or occurrences have typically required the creation of specific purpose code which is unique to the relationship of entities, the entity-type or the instance materialization technique. Traditionally, the specialized code is embedded in each program that processes that entity or object. For example, it is common practice to embed within a program module, the programming algorithm necessary to locate entity-to-entity relationships, determine methods of materializing specific instances of the relationship, call methods of materializing specific to instances of the entities, and optionally providing for addition of new object types and actions. This practice results in duplication of effort when the entities are involved in multiple solutions as occurs in managing a distributed system. Therefore, for managing a distributed system, there is a need for providing a standardized object list retrieval system that is decoupled from object instance utilization functions such as display routines.